const express = require('express');
const app = express();



// CORS跨域：前端不需要做任何处理，在后端设置允许跨域  
app.use((req,res,next)=>{
    res.setHeader('Access-Control-Allow-Origin','*');
    res.setHeader('Access-Control-Allow-Headers', '*');
    res.setHeader('Access-Control-Allow-Methods', '*');// get post put patch delete
    next();
});

// 设置post中间件
app.use(express.urlencoded({extended:false}));
// 接收post json数据
app.use(express.json());

app.get('/get_ajax', (req, res)=>{
    res.send('get ajax request');
})
// query参数
app.get('/query', (req, res)=>{
    res.send('query :' + JSON.stringify(req.query));
})
// parmas参数
app.get('/params/:username/:age', (req, res)=>{
    res.send('params: ' + JSON.stringify(req.params));
})
//post请求
app.post('/post', (req,res)=>{
    res.send('post data: ' + JSON.stringify(req.body))
})
// type
app.get('/type', (req, res)=>{
    let user = {
        username:'atguigu',
        age:100,
        sex:'boy'
    }
    // 响应json数据
    res.json(user);
})

// 4秒钟之后在响应数据
app.get('/timeout', (req,res)=>{
    setTimeout(()=>{
        res.send('timeout 4S');
    },4000)
})

// 
app.get('/testie', (req,res)=>{
    res.send('ie: ' + Math.random());
})

app.get('/jsonp', (req,res)=>{
    let data = '222';
    let methodName = req.query.cb;
    res.send(`${methodName}("${data}")`);
})

app.listen(8080, ()=>{
    console.log('server run at 8080');
})